package com.supplychain.scm.core.common.annotation;

import com.supplychain.scm.core.common.version.enums.ClientType;
import org.springframework.web.bind.annotation.Mapping;

import java.lang.annotation.*;

/**
 * @author liyang
 * @version 1.0.0
 * @ClassName ApiVersion
 * @Description API 版本号控制
 * @createTime 12:11:00 2023/01/05
 */
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface ApiVersion {

    /**
     * 版本号
     * @return
     */
    String value();

    /**
     * 默认允许所有客户端类型访问
     * 可选值有:
     * WECHAT_APPLET
     * ANDROID
     * IOS
     *
     * @return 允许访问的客户端类型列表
     */
    ClientType[] clientTypes() default {};
}
